<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>03_闭包的作用</title>

</head>
<body>
	<!--
		1. 使用函数内部的变量在函数执行完后, 仍然存活在内存中(延长了局部变量的生命周期)
		2. 让函数外部可以操作(读写)到函数内部的数据(变量/函数)
	-->
<script type="text/javascript">
  function fun1() {
    var a = 3;

    function fun2() {
      a++;            //引用外部函数的变量--->产生闭包
      console.log(a);
    }

    return fun2;
  }
  var f = fun1();  //由于f引用着内部的函数-->内部函数以及闭包都没有成为垃圾对象

  f();   //间接操作了函数内部的局部变量
  f();
</script>

</body>
</html>